<html>
<head><meta charset="utf-8"><title>Finding terminology · t-lang/wg-unsafe-code-guidelines · Zulip Chat Archive</title></head>
<h2>Stream: <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/index.html">t-lang/wg-unsafe-code-guidelines</a></h2>
<h3>Topic: <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html">Finding terminology</a></h3>

<hr>

<base href="https://rust-lang.zulipchat.com">

<head><link href="https://rust-lang.github.io/zulip_archive/style.css" rel="stylesheet"></head>

<a name="137151362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151362">(Nov 04 2018 at 10:35)</a>:</h4>
<p>We could use some more eyes on <a href="https://github.com/rust-rfcs/unsafe-code-guidelines/pull/40" target="_blank" title="https://github.com/rust-rfcs/unsafe-code-guidelines/pull/40">https://github.com/rust-rfcs/unsafe-code-guidelines/pull/40</a> to come up with a name for the thing that we sometimes call an "rvalue", an "operand" or just a "value" in Rust currently -- the thing that gets stored in a place; the thing that is denoted by the right-hand side of an assignment operation. :)</p>



<a name="137151462"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151462" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151462">(Nov 04 2018 at 10:38)</a>:</h4>
<p>("value" is a bad term because for many of us -- those coming from FP or PL -- a "value" is just the result of a computation. So it doesn't make any sense to call the <code>3+2</code> in <code>x = 3+2</code> a <em>value</em>. The term value, for us, is to distinguish from "expression" or "computation" -- it's about being the result vs. the instructions that can be executed to compute said result. So we can have "place expressions" like <code>&amp;x.field</code> which then compute to a "place value" like <code>{ pointer: 0x002345f0, alignment: 4 }</code>. The "place" vs "rvalue" distinction is on an orthogonal axis, this is about whether we are computing a location in memory that we can store some data in, or whether we are computing the data that is to be stored somewhere.)</p>



<a name="137151473"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151473" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151473">(Nov 04 2018 at 10:39)</a>:</h4>
<p>I find the discussion hard to follow, and also am a bit confused about how these are called in other languages. The "value cartegories" in C++ change pretty much with every std</p>



<a name="137151475"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151475" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151475">(Nov 04 2018 at 10:39)</a>:</h4>
<p>Yeah I propose we ignore the mess that C++ made there, other than using it as a bad example</p>



<a name="137151519"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151519" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151519">(Nov 04 2018 at 10:40)</a>:</h4>
<p>lucky enough, I think in rust we just have these two ("place" vs the to-be-named thing). C++ got a way more categories (must be a dozen by now), I suppose due to its approach to "move semantics". (CC <span class="user-mention" data-user-id="125253">@Nicole Mazzuca</span>)</p>



<a name="137151531"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151531" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151531">(Nov 04 2018 at 10:41)</a>:</h4>
<p>For me personally, separating "memory" from "objects" is what makes most sense, but that might not be strict enough to be useful</p>



<a name="137151535"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151535" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151535">(Nov 04 2018 at 10:41)</a>:</h4>
<p>what do you mean? (FWIW I also favor "object" currently as the term)</p>



<a name="137151539"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151539" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151539">(Nov 04 2018 at 10:42)</a>:</h4>
<p>so <code>3+2</code> would be an "object expression" denoting the "object" <code>5</code></p>



<a name="137151578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151578">(Nov 04 2018 at 10:42)</a>:</h4>
<p><code>3</code>, <code>3+4</code>, ... are expressions producing objects<br>
<code>let x = 3;</code> <code>x</code> is an expression reading the object from the "memory" at <code>x</code></p>



<a name="137151581"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151581" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151581">(Nov 04 2018 at 10:42)</a>:</h4>
<p>you can take an address to an object in memory, but the object produced by <code>3+4</code> is not in any memory</p>



<a name="137151588"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151588" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151588">(Nov 04 2018 at 10:42)</a>:</h4>
<p>the latter is place-to-object conversion, which rads the object from memory if that's where it is. I agree.</p>



<a name="137151590"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151590" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151590">(Nov 04 2018 at 10:42)</a>:</h4>
<p>so <code>&amp;x</code> is "ok", but <code>&amp;(3+4)</code> would not be</p>



<a name="137151591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151591">(Nov 04 2018 at 10:42)</a>:</h4>
<p>in miri, objects can be either in memory or "immediate"</p>



<a name="137151597"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151597" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151597">(Nov 04 2018 at 10:43)</a>:</h4>
<p><code>&amp;(3+4)</code> is okay in Rust though :P</p>



<a name="137151600"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151600" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151600">(Nov 04 2018 at 10:43)</a>:</h4>
<p>but it desugars to something where a place is involved</p>



<a name="137151601"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151601" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151601">(Nov 04 2018 at 10:43)</a>:</h4>
<p>i know, so to make that ok we need to define in which memory it is</p>



<a name="137151602"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151602" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151602">(Nov 04 2018 at 10:43)</a>:</h4>
<p>well we can just apply our definitions after desugaring</p>



<a name="137151603"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151603" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151603">(Nov 04 2018 at 10:43)</a>:</h4>
<p>then all is easy</p>



<a name="137151642"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151642" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151642">(Nov 04 2018 at 10:44)</a>:</h4>
<p><code>let _tmp = 3+4; &amp;_tmp</code> is what happens</p>



<a name="137151660"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151660" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151660">(Nov 04 2018 at 10:45)</a>:</h4>
<p>so we first evaluate the object 3+4 to the object value 7, then we store that in the place _tmp, and then we do place-to-object conversion (<code>&amp;</code>), which proceeds by computing the place value (which is an address in memory and some more information like alignment), and then turning that into an object value (the location in memory; the alignment gets discarded)</p>



<a name="137151866"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151866" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151866">(Nov 04 2018 at 10:53)</a>:</h4>
<p>yeah, that makes sense to me. IIRC ubsan does not like the term "object", but I don't find it is confusing due to "trait object"</p>



<a name="137151968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137151968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137151968">(Nov 04 2018 at 10:57)</a>:</h4>
<p>Yeah, let's see what <span class="user-mention" data-user-id="125253">@Nicole Mazzuca</span> thinks. I also wonder if <span class="user-mention" data-user-id="116009">@nikomatsakis</span> has any thoughts.</p>



<a name="137160197"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160197" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160197">(Nov 04 2018 at 15:42)</a>:</h4>
<p>1) no. object is a bloody awful term. It is both overloaded by OO languages, and means exactly the opposite of what you want it to mean.</p>



<a name="137160270"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160270" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160270">(Nov 04 2018 at 15:44)</a>:</h4>
<p>2) there are three categories of expression in C++ - lvalue, xvalue, prvalue. There are two kinds of category; glvalue = {lvalue, xvalue}; rvalue = {prvalue, xvalue}. A glvalue is an expression which refers to an object, as opposed to just a value; and an rvalue is an expression which can be bound to an xvalue reference (i.e., you can coerce a prvalue into an xvalue).</p>



<a name="137160499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160499">(Nov 04 2018 at 15:50)</a>:</h4>
<p>3) please just call it value vs place. It's really not that hard. A value is what one operates on - something like <code>5</code> or <code>"hello"</code> or <code>("boop", 2)</code>. A place is a location, value pair - a "place" that one can put a "value".</p>



<a name="137160797"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160797" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160797">(Nov 04 2018 at 15:59)</a>:</h4>
<p>3.) no. a value is something else for a significant chunk of our community -- in particular for the chink that has most experience with anything formal.</p>



<a name="137160844"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160844" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160844">(Nov 04 2018 at 16:00)</a>:</h4>
<p>just because C/C++ use "value" the wrong way doesnt mean we should</p>



<a name="137160871"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160871" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Andrew Poelstra <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160871">(Nov 04 2018 at 16:00)</a>:</h4>
<p>In C the word "object" is pretty close to what we're referring to</p>



<a name="137160883"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160883" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Andrew Poelstra <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160883">(Nov 04 2018 at 16:00)</a>:</h4>
<p>C++ uses it to mean "instance of a class" like in Java, which was a weird decision because it was very divergent from C</p>



<a name="137160890"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160890" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160890">(Nov 04 2018 at 16:00)</a>:</h4>
<p><span class="user-mention" data-user-id="120791">@RalfJ</span> I don't agree? I use value to mean exactly the same thing in OCaml and Haskell.</p>



<a name="137160901"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160901" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160901">(Nov 04 2018 at 16:01)</a>:</h4>
<p>you suggested in (3) above to call <code>3+4</code> a value</p>



<a name="137160902"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160902" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160902">(Nov 04 2018 at 16:01)</a>:</h4>
<p>it is not</p>



<a name="137160904"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160904" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160904">(Nov 04 2018 at 16:01)</a>:</h4>
<p><span class="user-mention" data-user-id="132769">@Andrew Poelstra</span> no - C++ uses object like C uses object</p>



<a name="137160905"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160905" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160905">(Nov 04 2018 at 16:01)</a>:</h4>
<p><span class="user-mention" data-user-id="120791">@RalfJ</span> <code>3 + 4</code> is a value expression - an expression that results in a value</p>



<a name="137160917"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160917" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160917">(Nov 04 2018 at 16:01)</a>:</h4>
<p>"value expression" just makes no sense</p>



<a name="137160962"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160962" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160962">(Nov 04 2018 at 16:02)</a>:</h4>
<p>yes it does?</p>



<a name="137160963"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160963" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160963">(Nov 04 2018 at 16:02)</a>:</h4>
<p>ocaml+haskell do not have this distinction between places and "objects". they have expressions and values, done.</p>



<a name="137160964"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160964" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160964">(Nov 04 2018 at 16:02)</a>:</h4>
<p><code>7</code> is a value which <code>3 + 4</code> results in</p>



<a name="137160966"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160966" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160966">(Nov 04 2018 at 16:02)</a>:</h4>
<p>once you have places and "objects", you have 4 kinds of things as they both are written down as expressions and evaluate to some kind of value</p>



<a name="137160968"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160968" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160968">(Nov 04 2018 at 16:02)</a>:</h4>
<p>OCaml absolutely has this distinction, because they have <code>ref</code></p>



<a name="137160971"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160971" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160971">(Nov 04 2018 at 16:02)</a>:</h4>
<p>ocaml has <code>ref</code> but doesnt need places</p>



<a name="137160976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160976">(Nov 04 2018 at 16:03)</a>:</h4>
<p>that's what a <code>ref</code> is - a place</p>



<a name="137160977"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160977" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160977">(Nov 04 2018 at 16:03)</a>:</h4>
<p>there are just values of type <code>ref</code>, that's enough. this is because ocaml does not have the <code>&amp;</code> operator.</p>



<a name="137160988"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137160988" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137160988">(Nov 04 2018 at 16:03)</a>:</h4>
<p>look, please at least try to understand</p>



<a name="137161027"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161027" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161027">(Nov 04 2018 at 16:04)</a>:</h4>
<p>I get the feeling you are not trying to understand</p>



<a name="137161034"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161034" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161034">(Nov 04 2018 at 16:04)</a>:</h4>
<p>I'm trying to use reasonable language that people from other systems languages would understand</p>



<a name="137161037"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161037" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161037">(Nov 04 2018 at 16:04)</a>:</h4>
<p>I am trying to use reasonable language that people from other functional-style langauges would understand</p>



<a name="137161047"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161047" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161047">(Nov 04 2018 at 16:05)</a>:</h4>
<p>Rust isn't a functional-style language</p>



<a name="137161049"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161049" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161049">(Nov 04 2018 at 16:05)</a>:</h4>
<p>your terms are already used in my community and they mean something different. I acknowledge "object" is already used in your communicty so I am looking for something else.</p>



<a name="137161052"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161052" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161052">(Nov 04 2018 at 16:05)</a>:</h4>
<p>it is fucntional enough to start using such terminology. it is expression based. it is not really less functional than ocaml is.</p>



<a name="137161056"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161056" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161056">(Nov 04 2018 at 16:05)</a>:</h4>
<p>that's just untrue?</p>



<a name="137161109"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161109" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161109">(Nov 04 2018 at 16:06)</a>:</h4>
<p>"functional" is in how you write code</p>



<a name="137161115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161115">(Nov 04 2018 at 16:06)</a>:</h4>
<p>"expression-based" is a nice feature for any language</p>



<a name="137161132"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161132" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161132">(Nov 04 2018 at 16:06)</a>:</h4>
<p>and also, it's not like value is an overloaded term here.</p>



<a name="137161155"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161155" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161155">(Nov 04 2018 at 16:06)</a>:</h4>
<p>it means exactly the same thing in OCaml as it does here</p>



<a name="137161165"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161165" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161165">(Nov 04 2018 at 16:07)</a>:</h4>
<p>no and I explained above why</p>



<a name="137161167"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161167" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161167">(Nov 04 2018 at 16:07)</a>:</h4>
<p>you explained why... incorrectly</p>



<a name="137161212"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161212" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161212">(Nov 04 2018 at 16:08)</a>:</h4>
<p>OCaml and Haskell have no need for places</p>



<a name="137161213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161213">(Nov 04 2018 at 16:08)</a>:</h4>
<p>therefore, all of their expressions result in values</p>



<a name="137161216"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161216" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161216">(Nov 04 2018 at 16:08)</a>:</h4>
<blockquote>
<p>OCaml and Haskell have no need for places</p>
</blockquote>
<p>at least we agree on that now, you said sth else above</p>



<a name="137161218"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161218" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161218">(Nov 04 2018 at 16:09)</a>:</h4>
<p>since Rust adds a kind of thing that an expression returns, you need the distinction between expressions that return values, and expressions that return places</p>



<a name="137161223"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161223" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161223">(Nov 04 2018 at 16:09)</a>:</h4>
<blockquote>
<p>therefore, all of their expressions result in values</p>
</blockquote>
<p>they only have one kind of expression, and hence one kind of value</p>



<a name="137161226"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161226" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161226">(Nov 04 2018 at 16:09)</a>:</h4>
<p>Rust, C, C++ have multiple kinds of expressions</p>



<a name="137161227"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161227" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161227">(Nov 04 2018 at 16:09)</a>:</h4>
<p>and hence multiple kinds of values</p>



<a name="137161228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161228">(Nov 04 2018 at 16:09)</a>:</h4>
<p>yes</p>



<a name="137161230"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161230" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161230">(Nov 04 2018 at 16:09)</a>:</h4>
<p>this is why it's called prvalue and glvalue in C++</p>



<a name="137161232"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161232" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161232">(Nov 04 2018 at 16:09)</a>:</h4>
<p>"value" comes from "evaluate", its literally the result of evaluating something</p>



<a name="137161235"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161235" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161235">(Nov 04 2018 at 16:09)</a>:</h4>
<p>so "places" evaluate to one kind of value, and <code>3+4</code> evaluates to another kind of value</p>



<a name="137161280"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161280" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161280">(Nov 04 2018 at 16:10)</a>:</h4>
<p>no?</p>



<a name="137161281"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161281" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161281">(Nov 04 2018 at 16:10)</a>:</h4>
<p>that's not how etymology works</p>



<a name="137161286"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161286" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161286">(Nov 04 2018 at 16:10)</a>:</h4>
<p><em>lol</em> its not how you define these terms, but its how an entire community does</p>



<a name="137161287"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161287" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161287">(Nov 04 2018 at 16:10)</a>:</h4>
<p>you cannot just "no" that away</p>



<a name="137161294"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161294" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161294">(Nov 04 2018 at 16:11)</a>:</h4>
<p>no I mean literally, value does not come from evaluate</p>



<a name="137161302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161302">(Nov 04 2018 at 16:11)</a>:</h4>
<p>so do we agree there are two axis here? the place vs {"object"/"value"/<code>3+4</code>} axis, and the expression vs {value/result/evaluated term} axis.</p>



<a name="137161303"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161303" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161303">(Nov 04 2018 at 16:11)</a>:</h4>
<p>evaluate comes from value</p>



<a name="137161362"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161362" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161362">(Nov 04 2018 at 16:12)</a>:</h4>
<p>I don't agree - the latter is not an axis</p>



<a name="137161365"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161365" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161365">(Nov 04 2018 at 16:12)</a>:</h4>
<p>what else is it...?</p>



<a name="137161377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161377">(Nov 04 2018 at 16:13)</a>:</h4>
<p>these two axis form 4 concepts, and <em>all of these 4 concepts exist as types in rustc</em></p>



<a name="137161379"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161379" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161379">(Nov 04 2018 at 16:13)</a>:</h4>
<p>there's nothing hypothetical about this</p>



<a name="137161389"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161389" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161389">(Nov 04 2018 at 16:13)</a>:</h4>
<p>you can have a concept which is not an axis</p>



<a name="137161393"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161393" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161393">(Nov 04 2018 at 16:13)</a>:</h4>
<p>it seems to me you want to conflate the two kinds of values we have, but I disagree with mixing up distinct concepts</p>



<a name="137161438"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161438" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161438">(Nov 04 2018 at 16:14)</a>:</h4>
<p>hey, do you mind not being confrontational about this?</p>



<a name="137161439"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161439" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161439">(Nov 04 2018 at 16:14)</a>:</h4>
<p>you're putting words in my mouth.</p>



<a name="137161441"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161441" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161441">(Nov 04 2018 at 16:14)</a>:</h4>
<p>stop it. let me write the code</p>



<a name="137161456"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161456" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161456">(Nov 04 2018 at 16:15)</a>:</h4>
<p>well TBH I think I'll reboot and do some gaming now. maybe we better have this discussion asychronously.</p>



<a name="137161463"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161463" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161463">(Nov 04 2018 at 16:15)</a>:</h4>
<p>god, you're really difficult to talk to, you know that?</p>



<a name="137161504"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161504" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161504">(Nov 04 2018 at 16:16)</a>:</h4>
<p>well at least there's two of us that feel that way then</p>



<a name="137161740"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161740" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161740">(Nov 04 2018 at 16:22)</a>:</h4>
<p>see, as I'm thinking through this, I'm starting to agree that "value" meaning "the result of an expression" seems like a reasonable way to call these things</p>



<a name="137161759"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161759" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161759">(Nov 04 2018 at 16:23)</a>:</h4>
<p>"place" is good for "lvalue", but I'm not sure what we should call "values".</p>



<a name="137161809"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/137161809" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#137161809">(Nov 04 2018 at 16:24)</a>:</h4>
<p>"object" isn't good, it's overloaded</p>



<a name="144562817"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/144562817" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#144562817">(Nov 05 2018 at 05:07)</a>:</h4>
<p>apparently, compcert calls the type of r-values <code>val</code></p>



<a name="144562870"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/144562870" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> Nicole Mazzuca <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#144562870">(Nov 05 2018 at 05:09)</a>:</h4>
<p>ooh, thought: "immediate"</p>



<a name="146792045"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/146792045" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#146792045">(Nov 05 2018 at 12:30)</a>:</h4>
<p>I was afraid "object" would be confusing for C/C++ people, which is why I specifically asked for your feedback.<br>
I do see the clash with C++; I still do not understand though why you say this is not compatible with how C uses the term. They speak about "array objects" and such thing, all that seems perfectly consistent with how I proposed to use the term.</p>



<a name="146792050"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/146792050" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#146792050">(Nov 05 2018 at 12:30)</a>:</h4>
<p>I am going to call them "robjects" for now just so that I can consistently refer to them some way; that term should be sufficiently bad that nobody should like it enough to grow attached to it. ;)</p>



<a name="146792088"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/146792088" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#146792088">(Nov 05 2018 at 12:31)</a>:</h4>
<p>"immediate" is what I would call "things we can immediately manipulate" (miri <a href="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/interpret/enum.Immediate.html" target="_blank" title="https://doc.rust-lang.org/nightly/nightly-rustc/rustc_mir/interpret/enum.Immediate.html">literally has a type with that name</a>, and it used to be called <code>Value</code> and the docs didn't get updated entirely <em>oops</em>). <code>3</code> is an intermediate, but <code>(3, 3, 3)</code> is not because it only exists in memory, doesn't fit in a register. (We also have two-register immediates, matching LLVM's <code>ScalarPair</code>, but that's where it ends.)<br>
These <em>are</em> of course implementation details, but it is no good if we cannot use consistent terminology in rustc and miri.</p>



<a name="146792091"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/146792091" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#146792091">(Nov 05 2018 at 12:31)</a>:</h4>
<p>the way I see it, immediates are a subclass of robjects</p>



<a name="146796436"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/146796436" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#146796436">(Nov 05 2018 at 13:55)</a>:</h4>
<p>it might be worth it to collect discussion points for this before the next meeting</p>



<a name="147519375"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147519375" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147519375">(Nov 12 2018 at 11:19)</a>:</h4>
<p>So I think I prefer the <code>operand</code> version</p>



<a name="147519493"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147519493" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> gnzlbg <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147519493">(Nov 12 2018 at 11:20)</a>:</h4>
<p>I find using <code>value</code> that way a bit weird TBH, and I attach a kind of "temporary" meaning to the word <code>operand</code> that <code>value</code> does not seem to have. Although I agree with ubsan that the term is also overloaded when considering function operands.</p>



<a name="147592578"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592578" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592578">(Nov 13 2018 at 14:04)</a>:</h4>
<p><span class="user-mention" data-user-id="120791">@RalfJ</span> I don't know that I understand what you were using "objects" to mean</p>



<a name="147592609"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592609" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592609">(Nov 13 2018 at 14:05)</a>:</h4>
<p>were you saying that "object" referred to the <em>expression</em> <code>3+4</code>, or is it some kind of runtime notion?</p>



<a name="147592811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592811">(Nov 13 2018 at 14:08)</a>:</h4>
<p>If so, that seems quite divergent from how I understand the term in C -- though fwiw I agree with <span class="user-mention" data-user-id="125253">@Nicole Mazzuca</span> that it's not a great choice regardless.  (I quite like value/place, and I confess I don't know why "value expression" seems like nonsense to you -- I understand that as "an expression that evaluates to a value", vs "place expression", which would be an expression that evaluates to a place (which can then be converted into a value).)</p>



<a name="147592819"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592819" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592819">(Nov 13 2018 at 14:08)</a>:</h4>
<p><span class="user-mention" data-user-id="116009">@nikomatsakis</span> Both. That place vs. non-place is an axis orthogonal to expression vs. run-time.</p>



<a name="147592927"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592927" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592927">(Nov 13 2018 at 14:10)</a>:</h4>
<p>"expression that evaluates to a value" is like... "wet water" or so. (dang the usual example that we use for that in German doesn't work.) It's a tautology.</p>



<a name="147592944"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592944" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592944">(Nov 13 2018 at 14:10)</a>:</h4>
<p>well, it is in a language that lacks <code>&amp;</code></p>



<a name="147592954"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592954" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592954">(Nov 13 2018 at 14:10)</a>:</h4>
<p>it doesnt make any additional distinction, at least not if "value" means that it does for me and anyone around me</p>



<a name="147592960"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592960" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592960">(Nov 13 2018 at 14:10)</a>:</h4>
<p>no, this has nothing to do with places or not</p>



<a name="147592965"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592965" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592965">(Nov 13 2018 at 14:11)</a>:</h4>
<p>but ok so we're trying to find some terminology that is distinct from both camps, and yet familiar to both?</p>



<a name="147592976"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592976" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592976">(Nov 13 2018 at 14:11)</a>:</h4>
<p>"being a value" just means "being in some kind of normal-form"</p>



<a name="147592991"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147592991" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147592991">(Nov 13 2018 at 14:11)</a>:</h4>
<p>do we consider <code>**x</code> an expression?</p>



<a name="147593005"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593005" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593005">(Nov 13 2018 at 14:11)</a>:</h4>
<p>sure? was that ever a question?^^</p>



<a name="147593009"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593009" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593009">(Nov 13 2018 at 14:11)</a>:</h4>
<p>that is, the way I think of it, it 'evaluates' to a place, which does involve some work</p>



<a name="147593071"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593071" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593071">(Nov 13 2018 at 14:12)</a>:</h4>
<blockquote>
<p>sure? was that ever a question?^^</p>
</blockquote>
<p>not to me :) but I'm trying to understand the countours here :)</p>



<a name="147593074"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593074" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593074">(Nov 13 2018 at 14:12)</a>:</h4>
<p>I see it as being an expression. but we have mutliple kinds of expressions. so "place expression" is a way to disambiguate those kinds.</p>



<a name="147593090"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593090" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593090">(Nov 13 2018 at 14:12)</a>:</h4>
<p>and "value expression" doesn't work for you in this sense, because <code>value</code> is just an expression in a normal form?</p>



<a name="147593099"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593099" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593099">(Nov 13 2018 at 14:12)</a>:</h4>
<p>I guess the question is whether one considers place a <em>value</em></p>



<a name="147593100"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593100" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593100">(Nov 13 2018 at 14:12)</a>:</h4>
<p>and then it evaluates, and if we want to fully precise we can say it evaluates to a "place value", but we can also just say it evaluates to a "place" because the fact that it is a value that we get is clear from context</p>



<a name="147593115"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593115" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593115">(Nov 13 2018 at 14:13)</a>:</h4>
<p>if you only call the <em>result</em> of these computations a place, <code>rustc::mir::Place</code> would be misnamed</p>



<a name="147593130"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593130" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593130">(Nov 13 2018 at 14:13)</a>:</h4>
<blockquote>
<p>and "value expression" doesn't work for you in this sense, because <code>value</code> is just an expression in a normal form?</p>
</blockquote>
<p>yes</p>



<a name="147593139"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593139" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593139">(Nov 13 2018 at 14:13)</a>:</h4>
<p>sure, I think of that as representing a "place expression"</p>



<a name="147593145"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593145" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593145">(Nov 13 2018 at 14:13)</a>:</h4>
<p>we don't have runtime values in that context</p>



<a name="147593148"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593148" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593148">(Nov 13 2018 at 14:13)</a>:</h4>
<p>so there isn't much point to distinguish</p>



<a name="147593153"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593153" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593153">(Nov 13 2018 at 14:14)</a>:</h4>
<p>in miri, it's different</p>



<a name="147593198"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593198" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593198">(Nov 13 2018 at 14:14)</a>:</h4>
<blockquote>
<p>I guess the question is whether one considers place a <em>value</em></p>
</blockquote>
<p>Right, that's why both <code>$NON_PLACE</code> and <code>$EVAL_RESULT</code> are still free variables in this discussion</p>



<a name="147593213"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593213" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593213">(Nov 13 2018 at 14:14)</a>:</h4>
<p>ok, I am at least understanding better the crux of the conflict :)</p>



<a name="147593228"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593228" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593228">(Nov 13 2018 at 14:14)</a>:</h4>
<blockquote>
<p>we don't have runtime values in that context</p>
</blockquote>
<p>The runtime version is <code>rustc_mir::interpret::Place</code>. They live happily next to each other. ;)</p>



<a name="147593290"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593290" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593290">(Nov 13 2018 at 14:15)</a>:</h4>
<p>But the point I was just trying to make is that "place" in its own doesnt say if we are talking about a static/syntactic or a run-time concept</p>



<a name="147593302"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593302" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593302">(Nov 13 2018 at 14:15)</a>:</h4>
<p>it is rather making a distinction along another axis, the place-<code>$NON_PLACE</code> axis</p>



<a name="147593348"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593348" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593348">(Nov 13 2018 at 14:16)</a>:</h4>
<p>yes, ok</p>



<a name="147593369"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593369" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593369">(Nov 13 2018 at 14:16)</a>:</h4>
<p>so expression/value is a potential thing for static/dynamic context</p>



<a name="147593373"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593373" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593373">(Nov 13 2018 at 14:16)</a>:</h4>
<p>I think this is your preference, right?</p>



<a name="147593377"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593377" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593377">(Nov 13 2018 at 14:16)</a>:</h4>
<p>and then we might have to disambugate by saying "place expression" (aka <code>rustc::mir::Place</code>) and "place <code>$EVAL_RESULT</code>" (aka <code>rustc_mir::interpret::Place</code>)</p>



<a name="147593400"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593400" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593400">(Nov 13 2018 at 14:17)</a>:</h4>
<p>yes, ok, I see</p>



<a name="147593405"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593405" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593405">(Nov 13 2018 at 14:17)</a>:</h4>
<p>/me shrugs</p>



<a name="147593408"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593408" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593408">(Nov 13 2018 at 14:17)</a>:</h4>
<p>interesting question :)</p>



<a name="147593409"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593409" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593409">(Nov 13 2018 at 14:17)</a>:</h4>
<p>and I prefer <code>EVAL_RESULT=value</code>, yes. And I <em>think</em> that is actually consistent with C, C just doesn't have a term for the static thing. But if it is too confusing we might better pick an altogether different word.</p>



<a name="147593417"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593417" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593417">(Nov 13 2018 at 14:17)</a>:</h4>
<p>However, the bigger contention is around what to use for <code>$NON_PLACE</code></p>



<a name="147593427"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593427" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593427">(Nov 13 2018 at 14:17)</a>:</h4>
<p>I don't think value is a terrible word</p>



<a name="147593499"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593499" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593499">(Nov 13 2018 at 14:18)</a>:</h4>
<p>right, the real question is the non-place part</p>



<a name="147593505"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593505" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593505">(Nov 13 2018 at 14:18)</a>:</h4>
<p>I think "value" is a terrible choice for <code>$NON_PLACE</code> because there are many people that will think it means <code>$EVAL_RESULT</code></p>



<a name="147593528"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593528" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593528">(Nov 13 2018 at 14:18)</a>:</h4>
<p>yes, sorry, I meant that value is reasonable for <code>$EVAL_RESULT</code></p>



<a name="147593538"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593538" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593538">(Nov 13 2018 at 14:19)</a>:</h4>
<p>though it does leave open the question of what to call <code>$NON_PLACE</code></p>



<a name="147593591"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593591" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593591">(Nov 13 2018 at 14:20)</a>:</h4>
<p>I think part of this is that I've usually had a "subset" notion in my head</p>



<a name="147593645"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593645" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593645">(Nov 13 2018 at 14:20)</a>:</h4>
<p>that is, you have "expressions" and "place expressions" (a subset of expressions that can be evaluated to a place)</p>



<a name="147593658"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593658" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593658">(Nov 13 2018 at 14:20)</a>:</h4>
<p>similarly "values" and "place values" (aka pointers, though I think maybe they carry a bit more, like a type)</p>



<a name="147593669"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593669" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593669">(Nov 13 2018 at 14:20)</a>:</h4>
<p>(just trying to think about why I never felt a lot of conflict here)</p>



<a name="147593683"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593683" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593683">(Nov 13 2018 at 14:21)</a>:</h4>
<p>but it seems useful to consider them as disjoint sets -- sub isn't really right, since e.g. <code>&amp;</code> treats them very differently</p>



<a name="147593693"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593693" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593693">(Nov 13 2018 at 14:21)</a>:</h4>
<p>so they are not "subtypes" in the Liskov substitution sense</p>



<a name="147593708"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593708" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593708">(Nov 13 2018 at 14:21)</a>:</h4>
<p>well, I guess it's more than "non-place expressions" get "promoted" to a place expression by creating a temporary</p>



<a name="147593761"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593761" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593761">(Nov 13 2018 at 14:22)</a>:</h4>
<p>anyway... now I see why "immediate" was suggested. It makes sense, though it does carry this notion of "constant" -- everything you need to know is "immediately" available</p>



<a name="147593811"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593811" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593811">(Nov 13 2018 at 14:22)</a>:</h4>
<p>it feels like the distinction between <code>3+4</code> and <code>x</code> is that the former "produces" a new value, I wonder if there is some name along those lines</p>



<a name="147593813"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593813" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> nikomatsakis <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593813">(Nov 13 2018 at 14:22)</a>:</h4>
<p>/me will ponder</p>



<a name="147593884"></a>
<h4><a href="https://rust-lang.zulipchat.com#narrow/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding%20terminology/near/147593884" class="zl"><img src="https://rust-lang.github.io/zulip_archive/assets/img/zulip.svg" alt="view this post on Zulip" style="width:20px;height:20px;"></a> RalfJ <a href="https://rust-lang.github.io/zulip_archive/stream/136281-t-lang/wg-unsafe-code-guidelines/topic/Finding.20terminology.html#147593884">(Nov 13 2018 at 14:23)</a>:</h4>
<blockquote>
<p>but it seems useful to consider them as disjoint sets -- sub isn't really right, since e.g. <code>&amp;</code> treats them very differently</p>
</blockquote>
<p>Indeed a place carries information that is not in a reference value: It carries an alignment. So I do not think subsets work.</p>



<hr><p>Last updated: Aug 07 2021 at 22:04 UTC</p>
</html>